﻿/**
 * Tencent is pleased to support the open source community by making Tars available.
 *
 * Copyright (C) 2016THL A29 Limited, a Tencent company. All rights reserved.
 *
 * Licensed under the BSD 3-Clause License (the "License"); you may not use this file except 
 * in compliance with the License. You may obtain a copy of the License at
 *
 * https://opensource.org/licenses/BSD-3-Clause
 *
 * Unless required by applicable law or agreed to in writing, software distributed 
 * under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 
 * CONDITIONS OF ANY KIND, either express or implied. See the License for the 
 * specific language governing permissions and limitations under the License.
 */

#ifndef __ADDFILE_COMMAND_H_
#define __ADDFILE_COMMAND_H_

#include "ServerCommand.h"

/**
 *自config服务下载文件 
 *
 */
class CommandAddFile : public ServerCommand
{
    
public:
    CommandAddFile(const ServerObjectPtr &pServerObjectPtr, const std::string &sFile, bool bByNode = false);
    ExeStatus canExecute(std::string &sResult);
    int execute(std::string &sResult);
private:
    int getScriptFile(std::string &sResult);
//    bool                _byNode;
    std::string         _file; 
    std::string         _serverId;
    ServerDescriptor    _desc;
    StatExChangePtr     _statExChange;
    ServerObjectPtr     _serverObjectPtr;
};

//////////////////////////////////////////////////////////////
//
inline CommandAddFile::CommandAddFile(const ServerObjectPtr &pServerObjectPtr,const std::string &sFile,bool bByNode)
: _file(sFile)
,_serverObjectPtr(pServerObjectPtr)
{ 
    _desc      = _serverObjectPtr->getServerDescriptor();
    _serverId  = _serverObjectPtr->getServerId();
}

#endif 
